#include "ota.h"
#include "ota_admin.h"
#include "esp_log.h"

char *ota_admin_port_get_ip(void)
{
    // char *ip = (char *)dbus_get_value("wifi_ip");
    // if (!ip)
    //     return "0.0.0.0";
    // return ip;
    return "0.0.0.0";
}

uint32_t ota_admin_port_get_time(void)
{
    return esp_log_timestamp();
}

void ota_admin_plugin_loop(void *ota, void *user_data)
{
    ota_admin_loop(user_data);
}

void *ota_admin_port_init(ota_admin_data_t data)
{
    void *admin = ota_admin_create(data);
    if (!admin)
        return NULL;
    ota_plugin_s ota_admin_plugin = {
        .name = "ota_admin",
        .loop = ota_admin_plugin_loop,
        .user_data = admin,
    };

    ota_plugin_t plugin = ota_add_plugin(ota_default_handle, &ota_admin_plugin);
    if (!plugin)
    {
        free(admin);
        return NULL;
    }
    return plugin;
}
